//package clienteapjava.modelo;
//
//import apjava.basico.ClienteModel;
//import apjava.basico.ServidorModel;
//import clienteapjava.TratadorConexaoCliente;
//import clienteapjava.dados.ConstanteInformacao;
//import clienteapjava.dados.GerenciadorMensagemCliente;
//import clienteapjava.gui.JanelaPrincipal;
//import clienteapjava.transmissao.VideoTransmit;
//import java.io.IOException;
//import java.net.InetAddress;
//import java.net.Socket;
//import java.net.UnknownHostException;
//import java.util.ArrayList;
//import java.util.List;
//
//public class PrincipalCliente_1 {
//    
//    private ServidorModel servidor = new ServidorModel();
//    private boolean logado = false;
//    private ClienteModel clienteCorrente = new ClienteModel();
//    private List clientesLogados;
//    private VideoTransmit videoTransmitir;
//    private int portaAtualEscutaVideo;
////    private Thread comunicacaoServidor;
//    
//    private static PrincipalCliente instance;
//    
//    private PrincipalCliente_1() {
//        try {
//            clienteCorrente.setIp(InetAddress.getLocalHost().getHostAddress());
//            System.out.println("Ip do cliente: " + clienteCorrente.getIp());
//        } catch (UnknownHostException ex) {
//            ex.printStackTrace();
//        }
//    }
//    
//    public static PrincipalCliente getInstance() {
//        if(instance == null) {
//            instance = new PrincipalCliente();
//        }
//        return instance;
//    }
//    
//    public boolean conecta(String ipServidor, int porta) {
//        servidor.setIp(ipServidor);
//        servidor.setPorta(porta);
//        
//        try {
//            System.out.println("Conectando com o servidor[" + servidor + "]...");
//            servidor.setConexao(new Socket(servidor.getIp(), servidor.getPorta()));
//            System.out.print("OK! Conectado!");
//        } catch (IOException ex) {
//            System.out.println("Falha na conexao com o servidor! Erro:" + ex.getMessage());
//            ex.printStackTrace();
//            return false;
//        }
//        new Thread(new TratadorConexaoCliente(servidor)).start();
//        logado = true;
//        return logado;
//    }
//    
//    public void desconecta() {
//        logado = !GerenciadorMensagemCliente.enviaMensagem(ConstanteInformacao.DESCONECTAR,
//                clienteCorrente,
//                servidor);
//        if (!logado) {
//            this.clientesLogados = new ArrayList<ClienteModel>();
//            clienteCorrente.setConexaoCliente(null);
//            System.out.println("Cliente deslogado");
//        }
//        
//        if (videoTransmitir!=null) videoTransmitir.stop();
//    }
//    
//    public boolean enviaVideo(){
//        String urlStream = "vfw://0";
//        System.out.println("enviando video para o servidor: "+ urlStream);
//        String ipCorrente = clienteCorrente.getIp();
//        
//        
//        
////        List<String> lista = JanelaPrincipal.getInstance().getlistaIPS(ipCorrente);
//        List<ClienteModel> lista = JanelaPrincipal.getInstance().getlistaClientes(ipCorrente);
//        int fim = lista.size();
//        
//        //Enviando para o primeiro
//        videoTransmitir = new VideoTransmit(urlStream, clienteCorrente);
//        String retorno = videoTransmitir.start();
//        
////        String retorno = null;
//        
//       
////        
////        for (int i = 0; i < fim; i++) {
//                videoTransmitir.setOutro(lista.get(0));
//                videoTransmitir.enviaOutro();
//                
//                 VideoTransmit outro = new VideoTransmit("rtp://192.168.0.105:"+clienteCorrente.getPortaEnvioVideo()+"/video", clienteCorrente);
//        retorno = outro.start();
//                
//                outro.setOutro(lista.get(1));
//                outro.enviaOutro();
////        }
//        
////        videoTransmitir = new VideoTransmit(urlStream, clienteCorrente);
////        String retorno = videoTransmitir.start();
//        boolean OK = (retorno == null);
//        if (OK){
//            OK = GerenciadorMensagemCliente.enviaMensagem(ConstanteInformacao.AVISO_ENVIO_VIDEO,
//                    String.valueOf(clienteCorrente.getPortaEnvioVideo()),
//                    servidor);
//        }
//        return OK;
//    }
//    
//    public boolean isLogado() {
//        return logado;
//    }
//    
//    public void setLogado(boolean logado) {
//        this.logado = logado;
//    }
//    
//    public List getClientesLogados() {
//        return clientesLogados;
//    }
//    
//    public void setClientesLogados(List clientesLogados) {
//        this.clientesLogados = clientesLogados;
//    }
//    
//    public ClienteModel getClienteCorrente() {
//        return clienteCorrente;
//    }
//    
//    public VideoTransmit getVideoTransmitir() {
//        return videoTransmitir;
//    }
//    
//    public void setVideoTransmitir(VideoTransmit videoTransmitir) {
//        this.videoTransmitir = videoTransmitir;
//    }
//    
//    public int getPortaAtualEscutaVideo() {
//        return portaAtualEscutaVideo;
//    }
//    
//    public void setPortaAtualEscutaVideo(int portaAtualEscutaVideo) {
//        this.portaAtualEscutaVideo = portaAtualEscutaVideo;
//    }
//    
//    public ServidorModel getServidor() {
//        return servidor;
//    }
//}
